[XEND] Only return valid VIF and VBD parameters via Xen API.
authorAlastair Tse <atse@xensource.com>
Thu, 7 Dec 2006 16:43:22 +0000 (16:43 +0000)
committerAlastair Tse <atse@xensource.com>
Thu, 7 Dec 2006 16:43:22 +0000 (16:43 +0000)
Also fix typo for memory_dynamic_{min,max}.

Signed-off-by: Alastair Tse <atse@xensource.com>
tools/python/xen/xend/XendAPI.py
tools/python/xen/xend/XendDomainInfo.py

index f59153e68b43e4bb54c106c7a86e701074c45f5b..e2640589ecfb95127c8eafca70b73fb9a4a81b5f 100644 (file)
@@ -1057,7 +1057,16 @@ class XendAPI:
         cfg = vm.get_dev_xenapi_config('vbd', vbd_ref)
         if not cfg:
             return xen_api_error(XEND_ERROR_VBD_INVALID)
-        return xen_api_success(cfg)
+
+        valid_vbd_keys = self.VBD_attr_ro + self.VBD_attr_rw + \
+                         self.Base_attr_ro + self.Base_attr_rw
+
+        return_cfg = {}
+        for k in cfg.keys():
+            if k in valid_vbd_keys:
+                return_cfg[k] = cfg[k]
+                
+        return xen_api_success(return_cfg)
 
     def VBD_media_change(self, session, vbd_ref, vdi_ref):
         return xen_api_error(XEND_ERROR_UNSUPPORTED)
@@ -1134,14 +1143,16 @@ class XendAPI:
         cfg = vm.get_dev_xenapi_config('vif', vif_ref)
         if not cfg:
             return xen_api_error(XEND_ERROR_VIF_INVALID)
+        
         valid_vif_keys = self.VIF_attr_ro + self.VIF_attr_rw + \
                          self.Base_attr_ro + self.Base_attr_rw
 
+        return_cfg = {}
         for k in cfg.keys():
-            if k not in valid_vif_keys:
-                del cfg[k]
+            if k in valid_vif_keys:
+                return_cfg[k] = cfg[k]
             
-        return xen_api_success(cfg)
+        return xen_api_success(return_cfg)
 
     # class methods
     def VIF_create(self, session, vif_struct):
index 3716be8462bae6dbc89bc08704c6f0228beb8325..29ce17083c99c8b04cc23038e33e6f081bd011d4 100644 (file)
@@ -1784,9 +1784,9 @@ class XendDomainInfo:
     def get_memory_static_min(self):
         return self.info.get('memory_static_min', 0)
     def get_memory_dynamic_max(self):
-        return self.info.get('memory_dynamic_min', 0)
-    def get_memory_dynamic_min(self):
         return self.info.get('memory_dynamic_max', 0)
+    def get_memory_dynamic_min(self):
+        return self.info.get('memory_dynamic_min', 0)
     
     
     def get_vcpus_policy(self):